package com.qingsong.service;

import com.github.pagehelper.PageInfo;
import com.qingsong.dto.PageDTO;
import com.qingsong.dto.RoomInsertDTO;
import com.qingsong.dto.RoomPageDTO;
import com.qingsong.dto.RoomUpdateDTO;
import com.qingsong.entity.Room;

import java.util.List;

public interface RoomService {
    /**
     * 添加一条房间记录
     * @param roomInsertDTO 房间添加实体
     * @return 影响条目数
     */
    int insert(RoomInsertDTO roomInsertDTO);

    /**
     * 按主键查一条房间记录
     * @param id 房间表主键
     * @return 一条房间记录
     */
    Room selectById(Long id);

    /**
     * 按主键修改一条房间记录
     * @param roomUpdateDTO 房间修改实体
     * @return 影响条目数
     */
    int updateById(RoomUpdateDTO roomUpdateDTO);

    /**
     * 按主键逻辑删除一条房间记录
     * @param id 房间表主键
     * @return 影响条目数
     */
    int logicDeleteById(Long id);

    /**
     * 按主键列表逻辑删除多条房间记录
     * @param ids 房间表主键列表
     * @return 影响条目数
     */
    int logicDeleteByIds(List<Long> ids);

    /**
     * 全查询所有房间记录
     * @return 所有房间记录集合
     */
    List<Room> list();

    /**
     * 分页查询房间记录
     * @param pageDTO 分页实体类
     * @return 分页数据
     */
    PageInfo<Room> page(PageDTO pageDTO);

    PageInfo<Room> pageLikeTitle(RoomPageDTO dto);

}
